#!/usr/bin/env python
#
#    Copyright (C) 2006 Jonathan Saggau                                                
#    saggau@gmail.com                                                                        
#                                                                                                 
#    This program is free software; you can redistribute it and/or modify  
#    it under the terms of the GNU General Public License as published by  
#    the Free Software Foundation; either version 2 of the License, or      
#    (at your option) any later version.                                              
#                                                                                                 
#    This program is distributed in the hope that it will be useful,         
#    but WITHOUT ANY WARRANTY; without even the implied warranty of          
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            
#    GNU General Public License for more details.                                  
#                                                                                                 
#    You should have received a copy of the GNU General Public License      
#    along with this program; if not, write to the                                 
#    Free Software Foundation, Inc.,                                                    
#    59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.  
#

DictType = type({})
import node

class synthdict(DictType):
    """
       Experimental attempt to use a dictionary subclass to set and track
       synth attributes
    """
    def __init__(self, controller, nodeID):
        DictType.__init__(self)
        self.controller = controller
        self.nodeID = nodeID
        
    def __setitem__(self, key, item):
        DictType.__setitem__(self, key, item)
        self._send(key, item)
        
    def self._send(self, key, item):
        self.controller.listSendMsg(node.set(self.nodeID, {key : item}))
        #self.controller.listSendMsg(node.set(self.nodeID, self[:])) #???